#ifndef MYHTTP_H
#define MYHTTP_H

#include <QObject>
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkReply>
#include <QtNetwork/QNetworkRequest>
#include <QTimer>
#include <QSslConfiguration>
#include <QString>
#include <QByteArray>
#include "messgae_type.h"

class MyHttp : public QObject
{
    Q_OBJECT
public:
    explicit MyHttp(QObject *parent = 0);
    void registerRequest(int flag,const QString& strUrl,const QByteArray& data);//发起添加用户请求
    void queryregisterRequest(int flag,const QString& strUrl);//发起查询用户请求
    void registerDogRequest(int flag,const QString& strUrl,const QByteArray& data);//发起添加狗请求
    void registerFoodRequest(int flag,const QString& strUrl,const QString& data);//发起添加食物请求
    void loginUserRequest(int flag,const QString& strUrl);//发起获取用户请求
    void loginDogRequest(int flag,const QString& strUrl);//发起获取狗信息请求
    void loginFoodRequest(int flag,const QString& strUrl);//发起获取食物信息请求
    void upUserRequest(int flag,const QString& strUrl,User_Login_Infor user);//发起更新用户请求
    void passwordRequest(int flag,const QString& strUrl,User_Login_Infor user);//发起更新用户请求
    void upDogRequest(int flag,const QString& strUrl,Dog_information dog);//发起更新狗信息请求
    void upFoodRequest(int flag,const QString& strUrl,Food_information food);//发起更新食物信息请求
    //void udRequest(const QString& strUrl);//根据url发起http请求
signals:
    void signal_requestFinished(int flag,bool bSuccess,const QString& strResult); //http请求结束
public slots:
    void slot_requestFinished(); //http请求结束
    void slot_requestTimeout();  //请求超时
private:
    QNetworkAccessManager* m_pNetworkManager;//网络管理类
    QNetworkReply* m_pNetworkReply; //封装请求返回信息
    QTimer* m_pTimer; //请求超时计时器
    QString m_strUrl; //记录当前请求的url
    User_Login_Infor m_user;
    Dog_information m_dog;
    Food_information m_food;
    int m_flag;
};

#endif // MYHTTP_H
